#ifndef _HUAWEI_AP_PROTOCOL
#define _HUAWEI_AP_PROTOCOL

#include <stdint.h>

#define PROTOCOL_VERSION 2
#define WIRELESS_PROTOCOL {0x66, 0x84, 0x53, 0x46, 0x48} // BT5.0
#define FREQUENCY_BAND                                   // 2.4G
#define CARD_MANUFACTURER                                // NUBOMED
#define CARD_MODEL                                       // TOHWAPV1.0
#define CARD_HW_VERSION                                  // VA
#define CARD_SW_VERSION                                  // 01.00.00.01
#define CARD_ID

#define HWAP_MAGIC 0x48576572
#define MAGIC_BYTES {0x48, 0x57, 0x65, 0x72}
#define MAX_PACKET_SIZE 1024 // 根据实际估算

#pragma pack(1)
struct hwap_pkt
{
    uint32_t magic;       // 魔术字，固定为0x48576572
    uint16_t seq;         // 序列号，建议从1递增，0为无效
    uint16_t op;          // 操作类型
    uint16_t type;        // 消息类型
    uint16_t payload_len; // 消息体长度
    uint8_t payload[];    // 数据区
};
#pragma pack()

struct hwap_card_info
{
    uint8_t version[1];           // 接口协议
    uint8_t wireless[10];         // 无线协议标准
    uint8_t frequency[8];         // 频段
    uint8_t card_manufacturer[8]; // 插卡厂家识别码
    uint8_t card_model[12];       // 插卡型号
    uint8_t card_hw_version[2];   // 插卡硬件版本
    uint8_t card_sw_version[4];   // 插卡软件版本
    uint8_t card_id[16];          // 插卡模块ID
};

void hwap_decode_byte(const uint8_t *const data, uint16_t data_len);

#endif // _HUAWEI_AP_PROTOCOL
